select 
PARTITA_IVA,CODICE_FISCALE,RAGIONE_SOCIALE,
       codice_contratto,POD,CODICE_CENSIMENTO,
        CODICE_SAPR,
       DataDecorrenza "Data Decorrenza",
       dataScadenza "Data Scadenza",
        to_char(dt_inifot,'dd/mm/yyyy') "data inizio fotov.",
        to_char(dt_finefot,'dd/mm/yyyy') "data fine fotov.",
       --sum (nvl(opr,0)+nvl(accise,0) +case when partita_iva is null then iva else 0 end ) OPR,
       --sum (nvl(opr,0)+case when partita_iva is null then iva else 0 end ) OPR,
       sum (nvl(opr,0)) OPR,
        sum (nvl(tf,0))+sum(nvl(tp,0))+sum(nvl(tv,0)) TX,
        sum (nvl(tf,0)+nvl(tp,0)+nvl(tv,0)) T,
        sum(TF) TF,
        sum(TP) TP,
        sum(TV) TV,
        sum(accise) ACCISE,
        sum(IVA) IVA,
        sum(energia_fatturata) "Energia Fatturata Totale",
        sum (ENERGIA_FATTURATA) "Energia Fatturata"
      
        
        
      
        FROM (

select rf.tfat_id, fox.PARTITA_IVA,
CASE WHEN fox.codice_fiscale IS NULL THEN fox.partita_iva ELSE fox.codice_fiscale END CODICE_FISCALE,
fox.RAGIONE_SOCIALE,
fox.codice_contratto,
fox.POD,
'' CODICE_CENSIMENTO,
fox.CODICE_SAPR,
to_char(co.CON_DTINIGES,'dd/mm/yyyy') DataDecorrenza,
to_char(co.VER_DTfine,'dd/mm/yyyy') dataScadenza,
rf.ver_dtini,rf.ver_dtfine,
fox.dt_inifot,fox.dt_finefot,
 case when rf.voce_id in(205,
207,
208,
209,
212,
213,
214,
215,
216,
217,
220,
221,
222,
224,
225,
226,
227,
228,
229,
232,
234,
236,
237,
238,
239,
240,
248,
250,
251,
252,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
303,
311,
312,
313,
342,
356,
396,
397,
405,
406,
407,
436,
437,
438,
441,
447,
448,
311,
456,
458,
459,
470,
471,
472,
473,
476,
478,
479,
481,
482,
483,
484,
485,
487,
488,
489,
490,
513,
522
)
                             then rf.fatvoceot_imp end opr,


 case when rf.voce_id in(220,
224,
251,
289,
290,
291,
295,
297,
303,
312
) OR (RF.VOCE_ID IN(220,303) AND RF.RVV_UMIDQTA1<>'kWh') then rf.fatvoceot_imp end TF,
 case when rf.voce_id in(248,252,283,436,437,438,313) then rf.fatvoceot_imp end TP,


 case when rf.voce_id in(205,
214,
215,
216,
217,
--220,
221,
229,
232,
236,
237,
238,
239,
240,
250,
281,
282,
284,
285,
286,
287,
288,
292,
293,
294,
296,
298,
--303,
356,
405,
406,
407
) OR (RF.VOCE_ID IN(220,303) AND RF.RVV_UMIDQTA1='kWh') 
then rf.fatvoceot_imp 
                             
                            else 
                             case when sc.RVV_VOCE_ID IN (311,458)  then sc.RFAT_IMP end end  TV,
                             
--sum( case when rf.voce_id in(311) then rf.fatvoceot_imp end) v311,                           

case when rf.voce_id in(242,244,245) then rf.FATVOCEOT_IMP  end Accise,
case when rf.voce_id in(248,250,251,252,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,
                             303,356,436,437,438,311,312,313,342,205,207,208,209,212,213,214,215,216,217,220,221,
                             224,225,226,227,228,229,232,234,236,237,238,239,240,405,406,407)
                             then rf.fatvoceot_imp * iva.iva_ali/100 end IVA,
case when rf.voce_id in (250,311) then rf.FATVOCEOT_QTA  else 0 end energia_fatturata                 
                             



---------------------------------------------
----------------------------------------------




 
from v_fatturar rf,conubifrn ub,fatturat ft,soggetto so ,contratto co,iva,
asm_fat_gse_scam_1 fox,

(select ar.rfat_id,ar.rvv_voce_id,SUM(round(ar.SCR_PU*ar.FATVOCEOT_QTA,2)) rfat_imp 
                                     from asm_fat_gse_scam_2 ar
                                           where (ar.RVV_VOCE_ID = 311 
                                                  and ar.VOCE_ID in (316,
320,
321,
322,
323,
325,
326,
327,
328,
332,
333,
338,
339,
340,
341,
355,
453,
454,
455
))
                                                 OR  
                                                 (ar.RVV_VOCE_ID = 458 
                                                  and ar.VOCE_ID in (333,
338,
339,
340,
341,
355
))
                                       
                                      
                                       group by ar.rfat_id,ar.rvv_voce_id) sc
where     ub.ser_id   ='03'
      and ub.az_id    ='01'
      and ub.cuf_id   = rf.cuf_id
      and ub.az_id    = rf.AZ_ID 
      and ft.AZ_ID    = rf.az_id
      and ft.TFAT_ID  = rf.TFAT_ID
      and so.AZ_ID    = rf.AZ_ID
      and so.SOG_ID   = ft.SOG_ID
     
      and sc.RFAT_ID(+) = rf.RFAT_ID
      and ub.CUF_ID   = fox.cuf_id    
      and co.con_anno = ub.con_anno
      and co.con_id = ub.con_id
      and co.az_id = so.az_id
      and rf.iva_id=iva.iva_id
      and rf.az_id=iva.az_id
      --and ft.fat_anno = ^Anno Fatturazione aaaa;N;NUMERICO^^
    
    
   --and rf.tfat_id = 355783
   and ub.con_anno =  2009
    and ub.con_id   =   9018
 ---------------------------------   and ub.cuf_id   =  8598
   --and ft.fat_anno =  2009
    -- and ft.fat_num  = 17357
      
---------------------------------------------
----------------------------------------------
)
group by PARTITA_IVA,CODICE_FISCALE,RAGIONE_SOCIALE,
       codice_contratto,POD,CODICE_CENSIMENTO,
        CODICE_SAPR,DataDecorrenza,dataScadenza,
        dt_inifot,dt_finefot